In recent years there has been a significant increase in reliance on computing systems to aid workers in performance of their assigned task. In fact, it is not uncommon for most, if not all, employees of a company or other organization to have access to some type of computing system. To increase productivity and sharing of system resources, many companies have further introduced computer networks linking all of the computing systems of the company together, thereby allowing for internal communication in the company and the sharing of files and other information between different computing systems. Many of these networks are not limited to one physical location, but instead, may link computing systems together that are located at many different geographic locations, such as the different offices of a company. Further, many of these networks allow users access via a telephone line or other data communication link, no matter where the computing system is located, such as in the case of an employee who is traveling with a laptop.
FIG. 1 illustrates a common network system 10. In general, network systems typically include a network 12, such as a Transmission Control Protocol/Internet Protocol (TCP/IP) network or other similar network system. Connected to the network is a plurality of host computing systems, 14a-14n, representing the individual computing systems used throughout the company or organization. The network system may also include one or several file servers 16 connected to the network 12 for storing and allowing access to shared files and resources. The network system 10 may also include web servers 18 for connecting the computing systems to the Internet. Other server systems 20 may also be present.
An important problem with computer networking is the ability to provide management and maintenance to each of the host computing systems and servers connected to the network. As stated, the computing systems and servers may be located at various locations throughout a company or organization, some of which may be in different geographic locations. As such, it is typically not feasible to provide maintenance and servicing of a particular computing system or server by going to the physical location of the computer or server. Further, providing maintenance information to the user of the computing system over the telephone is also not typically advantageous, as many computing system users are not as knowledgeable concerning computing system configuration and maintenance.
For this reason, management systems have been developed that allow network maintenance personnel, from a central location, to maintain computing systems and servers connected to a network. Specifically, with reference to FIG. 1, many network systems also include either one or several maintenance computing systems 22 connected to the network. The maintenance computing system, sometimes referred to as the client computing system, is capable of communicating with other host computing systems and servers in the network. The maintenance computing system monitors the health of the hardware of the host computing systems and also the information output to the display of the host computing systems. If a particular computing system or server is indicated to have errors, the maintenance computing system can access the health parameters associated with the host computing system or server and can also receive copies of the data output to the display of the host computing system or server. The data displayed on the host computing system is also displayed on the maintenance computing system, so that the maintenance personal can view errors and other diagnostic information typically displayed by the host computing system to its own terminal. In other words, the maintenance computing system acts as a terminal emulator emulating the data displayed on the display of the host computing system.
There are currently several terminal emulation systems commercially available for centralized maintenance of computing systems. These conventional systems mainly fall into two categories; software-based and software/hardware hybrid systems. While both types of systems allow maintenance personnel to perform maintenance, upgrades reconfiguration, etc. of host computing systems and servers from a remote location, there are some drawbacks to these conventional systems.
Specifically, as mentioned, some maintenance systems and servers are software based. One commercially available software-based maintenance system is PC Anywhere® developed and distributed by Symantec Corporation located in Cupertino, Calif. This software-based system is described more fully with reference to FIG 2A. In particular, FIG. 2a illustrates portions of the network system 10 of FIG 1, including a representative host computing system 14 the network 12, and a maintenance computing system 22. It is understood that the host computing system could be a server. The representative host computing system includes a CPU 24. Connected to the CPU 24 is a first bus bridge typically referred to as a north bridge 26. The north bridge connects a local bus to the CPU, where the bus among other things provides a communication link between the CPU and a memory controller 28 and a memory system 30. The host computing system 14 also includes a second bridge, typically referred to as a south bridge 32. The south bridge links various buses 34a-34nto the CPU. For example, an industrial standard architecture (ISA) bus may be connected to the south bridge and a bus connecting the CPU to a keyboard controller 36 may also be present on one of the buses of the south bridge. The south bridge 32 is also connected to either one or several peripheral component interface (PCI) buses 38. Connected to the PCI buses are slots for connection of peripherals such as displays, printers, etc. to the computing system. Important to the present discussion, one peripheral, (here shown connected to PCI Bus 0), is a video controller 42, such as a video graphic array (VGA), for controlling the display of information on a display 47 associated with the computing system.
With regard to the software-based computer maintenance systems, (PC Anywhere being one example), each host computing system 14 includes maintenance software 46b for operation on the CPU. The maintenance computing system 22 includes many of the same components and configurations as the host computing systems 14. Importantly, the maintenance computing system also includes maintenance software 46a. The software 46a and 46b are operating system (OS) based software, meaning that they operate in conjunction with the operating system and can be run only after the operating system of the computer is running.
During normal operation of the computing system, after the operating system has been initiated, problems with a host computing system 14 located on a network 12 can be observed at a remote location using the maintenance computing system 22. Specifically, when activated, health information concerning the host computing system is sent to the maintenance computing system 22. This health information may include data concerning the health of the hardware components of the host computing system 14, such as ambient temperature monitoring, PCI voltage, etc. This health information is gathered by the software 46b, compressed, and transmitted to the maintenance computing system. The software 46a of the maintenance computing system evaluates the health information to determine if there are any hardware problems with the host computing system 14.
Importantly, the software, 46a and 46b, also operate collectively to emulate the information displayed on the display terminal 47 of the host computing system 14 to the display associated with the maintenance computing system 22 so that the information displayed on the host computing system can also be viewed by maintenance personnel operating the maintenance computing system 22. Specifically, the software 46b resident on the host computing system 14 obtains video data transmitted by the CPU of the host computing system to the video controller 42. The software 46b uses the video driver software of the operating system to retrieve the data. The software 46b, when commanded, retrieves the data corresponding to the data displayed on the terminal display 47 of the host computing system 14, compresses the data, and sends the data to the maintenance computing system 22. The software 46a resident on the maintenance computing system 22 receives the data, decompresses it, and displays the data on the display associated with the maintenance computing system 22, where it can be viewed by maintenance personnel.
Although the above-discussed software-based system provides for remote maintenance of a networked computing system, there are some drawbacks and limitations to this approach. Specifically, as discussed, the software 46b resident in the host computing system, during a maintenance session, repeatedly receives, compresses, and sends a screen capture of the data displayed on the terminal display 47 of the host computing system 14. This can require a large amount of computing time and resources of the CPU associated with the host computing system, as sell as negatively affecting network bandwidth for transmission of the data. For example, if the video controller 42 of the host computing system outputs information for a color display that is 1024×768, each data transmission by the software 46b can be rather large.
In this instance, if there are 16 bits per pixel or two (2) bytes, then 1024×768×2 bytes is approximately 1.5 megabytes of information for each frame of data representing the data displayed on the display terminal 47 of the host computing system 14 to the maintenance computing system 22. The software requires a significant amount of processing time from the CPU of the host computing system to collect and compress the data, and transmission of the data uses unacceptable amounts of network bandwidth.
Another issue with conventional software-based maintenance systems is that the software, 46a and 46b; resident on the host and maintenance computing systems is OS-based software and are only operable once the operating system has been initialized. As such, the software is not operable during power on and initialization of the host computing system. During start up of the computing system, the Basic Input Output System is initiated and a power on self test (POST) is performed. POST performs several tests of the hardware components of the computing system and displays the results of these tests in a text mode on the display 47 of the host computing system 14. It is only after POST has run that the operating system associated with the host computing system is initiated. As such, the text information displayed by POST to the display terminal 47 of the host computing system 14 is not accessible by the software, 46a and 46b, of the conventional software-based systems. Thus, the maintenance personnel located at the remote location cannot assess if there are problems with the host computing system that are found and flagged during POST.
FIG. 2B is an illustration of a conventional software/hardware hybrid system. A system according to this configuration has been developed by American Megatrends, Inc., who is also the current assignee of the present invention. In this system, snooping hardware 48 is added to each of the host computing systems, 14a-14n, to detect when the video controller is in a text mode and retrieve text data for display at the maintenance computing system 22. The snooping hardware is connected to the same PCI Bus to which the video controller 42 is connected. The host computing system also includes hardware, not shown, for assessing information related to the health of the computing system.
Further, the system includes bus master hardware 44 for retrieving and transmitting text and graphic data to the maintenance computing system 22. The bus master hardware includes a private network 45a separate from the main network 45b of the host computing system for transmission of data to the maintenance computing system. The private network 45a is typically preferred as a separate network connection so that the bandwidth of the main server connection of the host computing system 14 is not affected. In the discussions below, conservation of network bandwidth refers to this private connection. It is understood that conservation of bandwidth in the private network 45a is an important concern.
Importantly, with regard to the software/hardware hybrid system, the snooping hardware allows for capture of text mode data during POST and start up of the host computing system. Further, if the video controller and snooping hardware are connected to PCI Bus 0, the snooping hardware may be used to emulate keyboard and mouse commands to the host computing system.
Specifically, in operation, the snooping hardware 48 watches the PCI Bus for data traffic associated with the video controller. If the snooping hardware detects that the video controller is in the text mode, such as during POST, then the text data is available at a known location in the memory of the video controller. The text data is retrieved by the bus master hardware 44 and transmitted through the private network 45a associated with the bus master hardware to the maintenance computing system.
However, if the snooping hardware determines that the video controller is in the graphics mode, such as after the operating system has started, then the graphics data location is unknown to the snooping hardware, as it varies from controller to controller. In this instance, the present system must still use software 46b to gather the graphics data. Specifically, the software 46b is OS-based software and uses the video driver associated with the operating system to retrieve the graphics data. The graphics data is then transmitted by the bus master hardware 48 via the private network 45a associated with bus master hardware to the maintenance computing system.
Importantly, as discussed, if the video controller and snooping hardware are connected to PCI Bus 0, the snooping hardware is also capable of emulating keyboard and mouse commands to the keyboard controller 36.
Although the software/hardware hybrid system illustrated in FIG. 2B provides several advantages over the conventional software-based systems, there are also some disadvantages with these conventional systems. Specifically, although the snooping hardware determines when the video controller is in a text mode, such as during POST, and can, via the bus master 44, transmit text data to the maintenance computing system, software 46b must still be used to collect graphic data. As with the conventional software-based systems, the software 46b of the software/hardware hybrid system retrieves, compresses, and transmits the graphical data, which requires added computing time and use of system resources of the CPU of the host computing system 14 and its network 45a bandwidth. Further, because both the conventional software-based and software/hardware hybrid systems require installation of software 46b on each computing system, there are also concerns with routine software updates which must be periodically performed for each system, especially when new versions of the operating system are added to the host computing systems.
In addition to the problems with software 46b, there are also problems concerning which PCI Bus the video controller is connected to in a given host computing system. Specifically, as stated the snooping hardware 48 must be on the same PCI bus as the video controller 42 to determine when the video controller is in a text mode. However, the snooping hardware 48 can only emulate keyboard and mouse commands if it is connected to PCI Bus 0. It is not always assured that the video controller will be located on PCI Bus 0. As such, if the video controller 42 is on a bus other than PCI Bus 0, the snooping hardware will not be located on PCI Bus 0 and cannot emulate keyboard and mouse commands.
With regard to FIG. 2C, some terminal emulation systems have been developed that alleviate the need for software on the host computing system. These systems 50 also attempt to reduce the amount of data transmitted to the maintenance computing system so as to reduce the affect on network bandwidth. These systems 50 are connected to the analog output used by the video controller 42 to transmit data to the display terminal 47 associated with the host computing system. These systems convert analog data output by the video controller 42 to digital data external from the video controller, compress the data, and send it across the network. In particular, these conventional systems periodically capture analog display data for different display times. The first set of display data is transmitted to the maintenance computing system. However, for remaining data captures, only the changes in the display data are transmitted. As such, less data is required to be transmitted either when there have been no changes in the display or only small changes.
FIG. 2C illustrates an example of these systems. In these systems, the CPU 24 of the computing system sends data to the video controller 42 for display on the display terminal 47. The video controller receives the data and converts it to analog form for transmission to the display terminal 47. These conventional systems 50 are connected between the video controller 42 and the display terminal 47. As the data is analog, these systems include an A/D converter 51, which converts the captured data to digital data. Each set of digital data is stored in different sections of registers, 53a-53n. Successive data sets are then compared to each other by the processor or by a specifically configured comparator, so that only the differences are transmitted to the maintenance computing system.
Although these conventional systems reduce the amount of data that must be sent for each new set of captured date, there is one significant drawback with these systems. Specifically, as mentioned, these conventional systems 50 capture and digitize analog data output by the video controller 42, which was converted from digital to analog data by the video controller. Errors are introduced into the data both in transforming the data to analog data and in digitizing the data. These errors may be somewhat random, such that two identical sets of analog screen data converted to digital format at different times may be completely different. These errors may alter the display data such that more of the data seems to be different between different sets of captured data. For example, even if the display has not changed, two sets of screen captures of the data may be different when compared due to the errors in converting the data from digital to analog and back to digital. As such, the system may transmit data to the maintenance computing system, even when there has been no change in the display, thereby requiring huge amounts of data to be transmitted over the private network 50, making it a slow process. This will also make the visual experience of the graphics screen at 22 sluggish.